home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / scripttex / stageplay.tex < prev    next >
Text File  |  1992-08-26  |  6KB  |  279 lines

  1. % TeX stageplay macros -- typeset format
  2. % Copyright 1991 Adrian McCarthy  See documentation for re-distribution info.
  3. \def\banner{ScriptTeX 1.03, 24-OCT-91, typeset stageplay format}%version
  4. \immediate\write16{\banner}
  5. %
  6. % These macros will produce a typeset script in stageplay format.
  7. %
  8. %
  9. % General page layout:
  10. %
  11. \font\sc=cmcsc10 % Caps and small caps
  12. \font\twbf=cmbx12 % Twelve point bold face
  13. \hsize=6.5truein
  14. \vsize=8.3truein
  15. \parindent 0pt
  16. \parskip\baselineskip
  17. \hoffset=0.5truein
  18. %
  19. % My first output routine.  Marks have three parts:  act/scene header,
  20. % dialog continuation text for top of page, and dialog continuation text
  21. % for the bottom of the page.  No insertions are handled at this time.
  22. %
  23. \output={%
  24.   \ifx\LR\empty \else
  25.     \if L\LR \hoffset=0.0truein \global\def\LR{R}
  26.       \else \hoffset=0.5truein \global\def\LR{L}
  27.     \fi
  28.   \fi%x
  29.   \shipout\vbox to 9.0truein{\makeheadline \pagebody \makefootline}
  30.   \advancepageno
  31. % No supereject nonsense since we aren't going to deal with insertions.
  32. }
  33. \def\makeheadline{%  Act/scene header and page number
  34.   \line{\tenrm \ifcase0\expandafter\relax\firstmark\fi%
  35.     \ifnum\pageno>0 \hss $\oldstyle\folio$. \fi}
  36.   \vskip\baselineskip
  37. }
  38. \def\pagebody{%
  39.   \line{\ifcase1\expandafter\relax\topmark\fi \hss}
  40.   \unvbox255
  41.   \line{\ifcase2\expandafter\relax\botmark\fi \hss}
  42.   \vfil
  43. }
  44. \def\makefootline{%
  45.   \line{\footer}
  46. }
  47. %
  48. % Revision information
  49. %
  50. \def\titletext{Stageplay}
  51. \def\title#1{\def\titletext{#1}}
  52. \def\seriestext{}  % here for compatibility with screenplay format
  53. \def\series#1{\def\seriesname{#1}}
  54. \def\authortext{}
  55. \def\author#1{\def\authortext{#1}}
  56. \def\drafttext{}
  57. \def\draft#1{\def\drafttext{#1}}
  58. \def\basedon#1{\def\basedontext{#1}}
  59. \def\basedontext{}
  60. \def\showcopyright#1{\def\copyrighttext{$\copyright$~#1}}
  61. \def\copyrighttext{}
  62. \def\address#1{\def\addresstext{\vtop{\settabs 1\columns \tabalign #1\cr}}}
  63. \def\\{\cr\tabalign}
  64. \def\addresstext{}
  65. \def\today{%
  66.   \hbox{\number\day-\ifcase\month\or JAN\or FEB\or MAR\or APR\or MAY%
  67.     \or JUN\or JUL\or AUG\or SEP\or OCT\or NOV\or DEC\fi%
  68.     -\number\year}%
  69. }
  70. \edef\datetext{\today}
  71. \def\date#1{\def\datetext{#1}}
  72. %
  73. % We count acts and scenes for you.
  74. %
  75. \newcount\actcnt \actcnt=0
  76. \def\currentact{}
  77. \newcount\scenecnt \scenecnt=0
  78. \def\currentscene{}
  79. \def\stdhead{%
  80.   {\tenit \titletext\/}
  81.   {\tenrm \currentact\ifx\currentscene\empty \else,\currentscene\fi}
  82. }
  83. \def\stdfoot{{\tenrm \drafttext} \hss {\tenrm \datetext}}
  84. \def\stdxref{%
  85.   \ifx\currentact\emtpy \else%
  86.     \currentact, %
  87.   \fi%
  88.   \ifx\currentscene\empty \else%
  89.     \currentscene%
  90.   \fi
  91. }
  92. \def\Roman#1{\uppercase\expandafter{\romannumeral#1}}
  93. \def\roman#1{\romannumeral#1}
  94. %
  95. % Variants
  96. %
  97. \def\LR{}
  98. \def\twoside{\def\LR{R}}
  99. \def\jlbrooks{} % for compatibility with screenplay format
  100. \def\movie{}
  101. \def\TV{}
  102. \def\sitcom{}
  103. \def\manuscript{
  104.   \def\header{\stdhead}
  105.   \def\footer{}
  106.   \def\draftblock{}
  107. }
  108. \def\proof{
  109.   \ifx\drafttext\empty \draft{Working Draft}\fi
  110.   \def\header{\stdhead}
  111.   \def\footer{\stdfoot}
  112. }
  113. \def\shoot{  % here for compatibility with screenplay format
  114.   \manuscript
  115. }
  116. %
  117. % Breakdowns
  118. %
  119. \def\makecastlist{\immediate\write16{Cast lists no longer supported.}}
  120. \def\collectcast{\immediate\write16{Cast lists no longer supported.}}
  121. \def\makescenelist{\immediate\write16{Scene lists no longer supported.}}
  122. \def\collectscenes{\immediate\write16{Scene lists no longer supported.}}
  123. %
  124. % Make a titlepage
  125. %
  126. \def\maketitle{%
  127.   \ifx\LR\empty \else \def\LR{R} \fi
  128.   \hbox{}
  129.   \vskip 2in
  130.   \ifx\seriestext\empty \else 
  131.     \centerline{\rm \seriestext}
  132.     \vskip 3\baselineskip
  133.   \fi
  134.   \centerline{\twbf \titletext}
  135.   \vskip\baselineskip
  136.   \ifx\authortext\empty \else
  137.     \centerline{\rm \authortext}
  138.   \fi
  139.   \vskip\baselineskip
  140.   \centerline{\basedontext}
  141.   \vskip 3.5in
  142.   \line{\copyrighttext\hfill\addresstext}
  143.   \vskip 3\baselineskip
  144.   \draftblock
  145.   \pageno=0
  146.   {
  147.     \def\header{}
  148.     \def\footer{}
  149.     \eject
  150.   }
  151.   \pageno=1
  152. }
  153. \def\draftblock{%
  154.   \vskip 2in
  155.   \ifx\drafttext\empty \else
  156.     \rightline{\rm \drafttext}
  157.   \fi
  158.   \rightline{\rm \datetext}
  159. }
  160. %
  161. % Standard header for acts, tags, and teasers
  162. %
  163. \def\acthead#1{%
  164.   \acttail
  165.   \advance\actcnt by 1
  166.   \scenecnt=0
  167.   \edef\currentact{#1}
  168.   \mark{\header\noexpand\or\noexpand\or}
  169.   \vfill
  170.   \penalty-10000
  171.   \vskip\baselineskip
  172.   \centerline{\twbf ACT #1}
  173.   \vskip 2\baselineskip
  174. }
  175. %
  176. % Standard tail for acts, tags, and teasers
  177. %
  178. \def\acttail{%
  179.   \penalty1000
  180.   \ifx\currentact\empty \else
  181.     \vskip 2\baselineskip
  182.     \centerline{\twbf END OF ACT \currentact}
  183.   \fi
  184. }
  185. %
  186. % Regular script constructs:
  187. %
  188. \def\act{\acthead{\Roman\actcnt}}
  189. \def\teaser{\prolog}  % Here for compatibility with
  190. \def\tag{\epilog}     % screenplay format.
  191. \def\prolog{\acthead{Prolog}\actcnt=0}
  192. \def\epilog{\acthead{Epilog}}
  193. \def\prologue{\acthead{Prologue}\actcnt=0}
  194. \def\epilogue{\acthead{Epilogue}}
  195. \def\theend{
  196.   \def\acttailblock{
  197.     \vskip 2\baselineskip
  198.     \centerline{\bf THE END}
  199.   }
  200. }
  201.  
  202. \def\scene#1{%
  203.   \advance\scenecnt by 1
  204.   \edef\currentscene{\roman\scenecnt}
  205.   \mark{\header\noexpand\or\noexpand\or}
  206.   {\it Scene \roman\scenecnt:  #1}\par
  207.   \penalty1000
  208. }
  209.  
  210. \def\stage{%
  211.   \mark{\header\noexpand\or\noexpand\or}
  212.   \it
  213. }
  214.  
  215. \def\trans#1{%
  216.   \mark{\header\noexpand\or\noexpand\or}
  217.   \penalty100
  218.   \rightline{\it #1}
  219.   \par
  220.   \penalty-100
  221. }
  222.  
  223. \def\open#1{\trans{#1}}
  224. \def\close#1{\trans{#1}}
  225.  
  226. \outer\def\dialog#1#2\par{%
  227.   \mark{\header\noexpand\or\noexpand\or}
  228.   \hangindent=5pc {\sc #1:} \rm
  229.   \mark{\header\noexpand\or {\sc #1:} {\it (cont'd)\/}%
  230.     \noexpand\or \rightline{\it (more)}}
  231.   #2\par
  232. }
  233.  
  234. \def\paren#1{{\sl (#1)\/}}
  235.  
  236. \def\leadin#1{%
  237.   #1~\ldots
  238.   \par
  239.   \penalty200
  240.   \def\leadtext{#1}
  241. }
  242. \def\pickup{\phantom{\leadtext}\llap{\ldots}~}
  243.  
  244. \def\em#1{{\it #1\/}}
  245. \def\extra#1{#1}
  246. \def\introduce#1{#1}
  247. \def\sound#1{#1}  % Here for compatibility with screenplay format.
  248. \def\ldots{.\thinspace.\thinspace.}
  249.  
  250. \def\cleanup{%
  251.   \par
  252.   \acttail
  253.   \mark{\header\noexpand\or\noexpand\or}
  254.   \vfill
  255.   \penalty-10000
  256. }
  257. \def\bye{
  258.   \cleanup
  259.   \end
  260. }
  261. %
  262. % Shortcuts:
  263. %   (Most of these make more sense in the screenplay format.)
  264. \def\beat{\paren{pause}}
  265. \def\cut{\trans{cut to}}
  266. \def\dissolve{\trans{dissolve to}}
  267. \def\ext#1{\scene{#1}}
  268. \def\fadein{\open{Lights up}}
  269. \def\fadeout{\close{Lights down}}
  270. \def\int#1{\scene{#1}}
  271. \def\os{\paren{off stage}}
  272. \def\shot#1\par{\par\stage #1}
  273. \let\tv=\TV
  274. \def\vo{\paren{voice over}}
  275. %
  276. % Defaults
  277. %
  278. \manuscript
  279.